package cn.lzd.mvp.base.net;

public enum NetCode {
    // region 成功
    Success(200, true, "成功"),
    NextPage(201, true, "请求下一页成功"),
    // endregion

    // region 错误
    NetError(404, false, "网络错误"),
    LackParam(205, false, "缺少参数"),
    // endregion

    /**
     * 1. 如果后端返回的错误当前没有定义
     * 2. 如果新版本增加了 ErrorCode，那么新增的对于旧版本就是未知的错误，则默认会缺省使用这个
     * 会使用 {@link CommonResBean#getMsg()} 来提示错误信息
     */
    CustomError(998, false, "自定义错误");

    final int code;
    final boolean isOK;
    final String message;

    NetCode(int code, boolean isOK, String message) {
        this.code = code;
        this.isOK = isOK;
        this.message = message;
    }

    public static NetCode checkCode(int code) {
        for (NetCode netCode : values()) {
            if (code == netCode.code) {
                return netCode.isOK ? null : netCode;
            }
        }
        return CustomError;
    }
}
